jQuery(document).ready(function($) {
	$('.control').live('click', function(event) {
		event.preventDefault()
	});

	$('.control-showEditArea').click(function(event) {
		toggleEditArea($(this), true);

		$('.editArea').show();
	});

	$('.control-toggleEditArea').click(function(event) {
		toggleEditArea($(this));

		$('.editArea').toggle(0);
	});

	$('.control-editAreaSubmit').live('click', function(event) {
		var form = $(this).parents('form');
		var editArea = $('.editArea');
		var action = form.attr('action');

		$.each(tinymce.editors, function (index, editor) {
			form.find('#' + editor.id).html(editor.getContent());
		});

		form.ajaxSubmit({success: function(responseText, statusText, xhr, $form) {
			editArea.find('.content').html(responseText);

			form = editArea.find('form');

			form.attr('action', action);

			id = form.find('#id');

			if (id.size()) {
				form.attr('action', action + '/' + id.attr('value'));
			}
		}});
	});

	function toggleEditArea(element, force) {
		editArea = $('.editArea');
		listArea = $('.listArea');

		isHidden = force || editArea.is(':hidden');

		listArea.css('width', isHidden ? '45%' : '100%');

		if (isHidden) {
			$.ajax({
				url: element.attr('href'),
				success: function(data) {
					editArea.find('.content').html(data);

					editArea.find('form').attr('action', element.attr('href'));

					initTinyMce();
				}
			});
		}
	}


	function initTinyMce() {
		tinyMCE.init({
			file_browser_callback: function(field_name, url, type, win) {
				tinyMCE.activeEditor.windowManager.open({
					file: '/js/kcfinder/browse.php?opener=tinymce&type=' + type,
					title: 'KCFinder',
					width: 700,
					height: 500,
					resizable: "yes",
					inline: true,
					close_previous: "no",
					popup_css: false
				}, {
					window: win,
					input: field_name
				});

				return false;
			},
			// General options
			mode : "exact",
            editor_selector : 'mce',
			theme : "advanced",
			plugins : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave",

			// Theme options
			theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
			theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
			theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
			theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft",
			theme_advanced_buttons5 : "insertfile",
			theme_advanced_toolbar_location : "top",
			theme_advanced_toolbar_align : "left",
			theme_advanced_statusbar_location : "bottom",
			theme_advanced_resizing : true,

			// Example content CSS (should be your site CSS)
			content_css : "css/content.css",

			// Drop lists for link/image/media/template dialogs
			template_external_list_url : "lists/template_list.js",
			external_link_list_url : "lists/link_list.js",
			external_image_list_url : "lists/image_list.js",
			media_external_list_url : "lists/media_list.js",

			// Style formats
			style_formats : [
				{title : 'Bold text', inline : 'b'},
				{title : 'Red text', inline : 'span', styles : {color : '#ff0000'}},
				{title : 'Red header', block : 'h1', styles : {color : '#ff0000'}},
				{title : 'Example 1', inline : 'span', classes : 'example1'},
				{title : 'Example 2', inline : 'span', classes : 'example2'},
				{title : 'Table styles'},
				{title : 'Table row 1', selector : 'tr', classes : 'tablerow1'}
			],

			// Replace values for the template plugin
			template_replace_values : {
				username : "Some User",
				staffid : "991234"
			}
		});
	}

});